625 P=INSTR(A$,S$(I)):IF P=0 THEN 628 ELSE A$=LEFT$(A$,P-1)+R$(I)+ RIGHT$(A$,LEN(A$)-P):GOTO 625
628 P=INSTR(A$,CHR$(0)):IF P=0 THEN 630 ELSE A$=LEFT$(A$,P-1)+ RIGHT$(A$,LEN(A$)-P):GOTO 625
630 NEXT
635 IF RC THEN PRINT #2,A$;
636 IF IB THEN 13030
637 X = LEN(A$):P=INSTR(A$,LF$):IF P=0 THEN 638 ELSE A$=LEFT$(A$,P-1)+RIGHT$(A$,X-P):GOTO 637
638 FOR I = 1 TO X:Z$=MID$(A$,I,1)
639 IF (Z$=CHR$(127)) THEN 655
640 IF ASC(Z$) = 27 THEN ESC=1
641 IF Z$=BS$ THEN GOSUB 2650:GOTO 655
645 IF ESC=1 THEN C$=C$+Z$ ELSE GOTO 650
646 IF LEN(C$)>1 THEN FF = INSTR("fmJ"+CHR$(14)+CHR$(93)+CHR$(124)+CHR$(91)+CHR$(27),Z$) ELSE 655
647 IF FF=0 THEN GOTO 655 ELSE GOSUB 12000:ESC=0:C$="":GOTO 655
650 PRINT Z$;
655 NEXT I
660 IF SP THEN ROW=CSRLIN:COL=POS(0):LOCATE 25,XPOS,1
661 IF PR THEN PR$=PR$+A$:GOSUB 800
720 IF PSE THEN PSE=0:PRINT #1,XN$;
810 P=INSTR(PR$,CR$):IF P=0 THEN 815 ELSE PRINT #3,LEFT$(PR$,P);:PR$=RIGHT$(PR$,LEN(PR$)-P):GOTO 810
815 IF LEN(PR$)>220 THEN PRINT #3,PR$;:PR$="":RETURN
1517 IF IB AND EX=72 THEN B$=CHR$(30):GOTO 535
1518 IF IB AND EX=71 THEN B$=CHR$(11):GOTO 535
1519 IF IB AND EX=80 THEN B$=CHR$(31):GOTO 535
1520 IF EX=35 THEN 1850
1525 IF EX=75 THEN B$=CHR$(29):GOTO 535
1526 IF EX=77 THEN B$=CHR$(28):GOTO 535
1530 IF EX=71 THEN 2000
1535 IF EX=19 OR EX=81 THEN EX=19:GOTO 3000
1540 IF EX=47 THEN 3400
1545 IF EX=20 OR EX=73 THEN EX=20:GOTO 3200
1550 IF EX=25 THEN 5000
1555 IF EX=32 THEN 6000
1560 IF EX=36 OR EX=37 THEN 7000
1590 IF EX=15 THEN:BEEP:LOCATE 25,1:PRINT" set Alt-(1-0): ";CHR$(181);:ALTSET= -1:GOTO 1000
1610 IF EX=114 OR EX=132 THEN BEEP:PRINT:IF PR=0 THEN PR=-1:PRINT"===PRINTOUT ON===":CLOSE #3:OPEN PRNTPORT$ AS #3:PRINT #3,PRNTINIT$;:GOTO 515 ELSE PR=0:CLOSE #3:PRINT"===PRINTOUT OFF===":GOSUB 2715:GOTO 515
1640 IF EX=45 THEN BEEP:CLS:PRINT"===EXIT TO DOS===":PRINT:PRINT"WARNING! If you proceed you will terminate the program.":PRINT"Do you want to do this (y/n)?";:Q$=INPUT$(1):GOSUB 2555:IF Q$<>"Y" THEN PRINT :PRINT GO$:GOTO 515 ELSE 8915
1670 IF EX=117 THEN OLDVAL=INP(LCR):BRKVAL=OLDVAL OR 64:OUT LCR,BRKVAL:EVWAIT!=3:GOSUB 40800:EVWAIT!=1:GOSUB 40800:OUT LCR,OLDVAL:GOTO 515
1682 IF EX=119 THEN 10000
1684 IF EX=30 THEN 13000
1685 '
1692 IF EX=34 THEN GOTO 11100
1693 IF EX=23 THEN GOTO 11130
1694 IF EX=22 THEN GOTO 11160
1696 IF EX=24 THEN GOTO 515
1699 GOTO 515
1850 IF NOT EOF(1) THEN Q$=INPUT$(LOC(1),#1):Q$="" ELSE Q$=""
1855 PLAY "MFL32N46L16N36":EVWAIT!=1:GOSUB 40800:PRINT #1,"+++";:EVWAIT!=30:GOSUB 40800:EVWAIT!=1:GOSUB 40800
1860 IF LOC(1)>0 THEN Q$=INPUT$(LOC(1),1) ELSE GOTO 1890
1865 IF INSTR(Q$,"OK")<>0 THEN Q$="":GOTO 1870 ELSE GOTO 1890
2705 CLOSE #2:IF RC THEN OPEN RCV$ FOR APPEND AS #2
2715 CLOSE #3:IF PR THEN OPEN PRNTPORT$ FOR OUTPUT AS #3
3010 IF RC THEN RC=0:RC$="":BEEP:PRINT:PRINT"===RECEIPT OF FILE ";RCV$; " TERMINATED===":GOSUB 3247:PRINT:GOSUB 2700:GOSUB 2800:IF MSG THEN PRINT #1,BL$;CR$;"===FILE RECEIVED===":GOTO 515 ELSE 515
3015 BEEP:FIL$=DRIV$:GOSUB 3641:PRINT :PRINT
3016 RC$="":PRINT"===RECEIVE A FILE===":GOTO 3500
3020 IF RC$="X" THEN CLOSE #2:KILL RCV$:OPEN RCV$ AS #2 LEN=128:FIELD #2,128 AS X$:GOTO 3030
3025 IF MSG THEN PRINT #1,BL$;CR$;"===READY TO RECEIVE===
3030 MSG$=" Receiving "+RCVX$+" (ALT-R or PgDn to Terminate)":GOSUB 2600
3210 IF TR THEN TR=0:TR$="":MSG1$="===TRANSMISSION OF FILE ":MSG2$= " TERMINATED===":GOSUB 3247:BEEP:PRINT:PRINT MSG1$;TRN$;MSG2$:GOSUB 2715: GOSUB 2800:IF MSG THEN PRINT #1,CR$;MSG1$;MSG2$,BL$:GOTO 515 ELSE 515
3215 IF TR THEN TR=0:TR$="":MSG1$="===END OF FILE":MSG2$="===":BEEP:PRINT: GOSUB 3247:PRINT MSG1$;" ";TRN$;MSG2$:GOSUB 2715:GOSUB 2800:IF MSG THEN PRINT #1,"65529 '";MSG1$;MSG2$;BL$:GOTO 515 ELSE 515
3220 TR$="":BEEP:PRINT :PRINT :PRINT:PRINT"===TRANSMIT A FILE===":GOTO 3500
3225 CLOSE #3:OPEN TRN$ AS #3 LEN=128:FIELD #3,128 AS X$
3240 IF MSG THEN PRINT #1,CR$;"0 '===START OF FILE===";BL$
3247 '
3248 GOSUB 40000:RETURN
3410 BEEP:PRINT :PRINT :PRINT "` ?' and Disk identifier shows Free Disk Space (example: ?A: or ?E:)"
3411 PRINT"===VIEW A FILE===":GOTO 3500
3420 WHILE NOT EOF(3):FOR I=1 TO 20:LINE INPUT #3,X$:J=LEN(X$):IF J<80 THEN PRINT X$ ELSE PRINT X$;:IF J>80 THEN I=I+FIX(J/80)
3585 IF TR$="B" OR TR$="X" OR RC$="X" THEN IF DTA$<>"8" THEN BEEP:PRINT"*** Automatically converting to 8 DATA BITS for binary or XMODEM ***"
3595 IF EX=19 THEN CLOSE #2:OPEN FIL$ FOR APPEND AS #2 ELSE CLOSE #3:OPEN FIL$ FOR INPUT AS #3
3641 AVAIL!=0:DR=0:BYTES!=0
3642 IF LEFT$(FIL$,2)="A:" OR LEFT$(FIL$,2)="a:" THEN DR=1 ELSE IF LEFT$(FIL$,2)="B:" OR LEFT$(FIL$,2)="b:" THEN DR=2 ELSE IF LEFT$(FIL$,2)="C:" OR LEFT$(FIL$,2)="c:" THEN DR=3
3643 IF LEFT$(FIL$,2)="D:" OR LEFT$(FIL$,2)="d:" THEN DR=4 ELSE IF LEFT$(FIL$,2)="e:" OR LEFT$(FIL$,2)="E:" THEN DR=5 ELSE IF LEFT$(FIL$,2)="f:" OR LEFT$(FIL$,2)="F:" THEN DR=6
3648 ACUM$=STR$(TOTAL.BYTES!)+" Bytes of free disk space"
3649 PRINT "Space available on the disk is"+ACUM$
3650 RETURN
3810 PLAY "MBL32N33":CLOSE #2:OPEN DUMP$ FOR APPEND AS #2:MSG$=" Appending to "+DUMP$+" at "+TIME$:GOSUB 2600
3815 FOR I=1 TO 24:Y$="":FOR J=1 TO 79:X=SCREEN(I,J):Y$=Y$+CHR$(X):NEXT J:PRINT #2,Y$:NEXT I:PRINT #2,STRING$(79,45);CR$;LF$;"===PC-TALK SCREENDUMP - ";DATE$;" at ";TIME$;"===";CR$;LF$;STRING$(79,61):CLOSE #2
3820 '
3915 PRINT"***The first 5 lines are:":FOR I=1 TO 5:IF NOT EOF(3) THEN LINE INPUT #3,X$:PRINT X$
3920 NEXT:PRINT"***ARE YOU SURE (y/n)?";:Q$=INPUT$(1):PRINT Q$:GOSUB 2555:IF Q$="Y" THEN CLOSE #3:KILL FIL$:BEEP:PRINT" (deleted)":GOTO 3930
4035 PRINT #1,Y$;:IF TR$="B" THEN 4050
4210 I=I+1:CNT!=CNT!+1
4211 IF I>255 THEN 4230 ELSE Z$=MID$(Y$,I,1)
4240 PRINT #1,Z$;:IF TR$="P" THEN IF Z$=CR$ THEN PRINT Z$;:GOSUB 4425:GOTO 4210
4405 FOR I=1 TO LEN(Y$):Z$=MID$(Y$,I,1):IF Z$=LF$ THEN 4415 ELSE IF Z$<>CR$ THEN PRINT #1,Z$;:PRINT Z$;:GOTO 4415 ELSE PRINT #1," "+CR$;:PRINT CR$;:B$="":GOSUB 4420
4430 IF DEL!>0 THEN EVWAIT!=18*DEL!:GOSUB 40800:EVWAIT!=1:GOSUB 40800:RETURN
6305 MDFLG=0:LOCATE 7,1:PRINT"Current Comm Parameters are: ";COMM$:PRINT: PRINT "Options: 1) Use Current 2) Use Default 3) Change (1/2/3 cr=Current) ";
6306 B$=INKEY$:IF B$="" GOTO 6306 ELSE IF VAL(B$)<>1 AND VAL(B$)<>2 AND VAL(B$)<>3 AND B$<>CHR$(13) THEN BEEP:GOTO 6306 ELSE PRINT B$
6307 IF VAL(B$)=1 OR B$=CHR$(13) THEN GOSUB 5820:MCOM$=COMM$:GOTO 6308 ELSE IF VAL(B$)=2 THEN GOSUB 5820:MCOM$=DCOMM$:GOTO 6308 ELSE MDFLG=-1:GOSUB 5010: MDFLG=0:MCOM$=COMM$:GOSUB 5820
6842 CLOSE #3:OPEN "LDAPPEND.DAT" FOR OUTPUT AS #3:PRINT #3,APPEND1$:PRINT #3,APPEND2$:CLOSE #3:RETURN
7010 BEEP:IF KPG=0 THEN KPG=1
7130 IF Q$="X" THEN CLOSE #2:GOSUB 2700:GOSUB 7435:LOCATE 16,40:PRINT GO$;:LOCATE ROW,COL:GOTO 515
7205 GOSUB 7435:CLOSE #2:OPEN KFIL$ AS #2:FIELD #2, 126 AS K$,2 AS L$
7230 GOSUB 2555:IF Q$="X" THEN CLOSE #2:GOSUB 2700:GOSUB 7440:LOCATE 16,40:PRINT GO$;:LOCATE ROW,COL:GOTO 515
8010 COMA=0:Q1DELAY=QDELAY 'COMA--To recognize pauses if used in DIAL$
8015 FOR I=1 TO LEN(DIAL$):IF MID$(DIAL$,I,1)="," THEN COMA=COMA+38
8020 NEXT:IX=0:CLS:V$=TIME$:LOCATE 20,4,0:PRINT"To change disconnect delay time press ";:COLOR HI,BG:PRINT"]";:COLOR FG,BG:PRINT" after '** DIALING:' appears above.";:LOCATE 1,1
8025 MSG$=" Redialing... *** HIT R TO RECYCLE. HIT SPACE BAR TO TERMINATE ***" :GOSUB 2600:LOCATE 2,54:PRINT"Redial Started at: ";:COLOR HI,BG:PRINT V$;: COLOR FG,BG:LOCATE 1,1
8030 Q1$="":Q$="":PRINT" ===REDIALING ";N$;:LOCATE 1,45:PRINT "Time at Start of This Pass: ";:COLOR HI,BG:PRINT TIME$:COLOR FG,BG: LOCATE 2,1:PRINT #1,MODM$+DIAL$:ROW=CSRLIN:COL=POS(0)
8045 LOCATE 22,4:PRINT"THIS IS TRY #: ";IX;" ELAPSED TIME THIS PASS ";I;
8050 B1$=INKEY$:IF B1$="R" OR B1$="r" GOTO 8115
8055 IF B1$="]" GOTO 8165
8060 '
8065 IF B1$=" " GOTO 8155
8070 IF LOC(1)>0 THEN Q$=INPUT$(LOC(1),1):Q1$=Q1$+Q$ ELSE 8080 'See Ln 9055
8075 IF INSTR(Q1$,MODM$+DIAL$)<>0 AND AFLG=0 THEN LOCATE ROW,COL:PRINT " ** DIALING: ";MODM$+DIAL$:PRINT" ** COM PARAMS: ";MID$(COMM$,6,10): PRINT" ** DISCONNECT DELAY PERIOD IS: "Q1DELAY:AFLG=1:ROW=CSRLIN:COL=POS(0)
8080 I=I+1
8085 IF INSTR(Q1$,CONNECT$)<>0 GOTO 8130
8090 IF INSTR(Q1$,"BUSY")<>0 OR INSTR(Q1$,"NO CARRIER")<>0 GOTO 8125
8095 EVWAIT!=19.5:GOSUB 40800
8100 WEND
8105 ' -- Delay Time has Expired
8110 LOCATE ROW,COL:COLOR HI,BG:PRINT" ** DELAY PERIOD EXPIRED **";:COLOR 7,BG
8165 LOCATE 13,1:INPUT"GIVE NEW DELAY IN SECONDS (10 sec. minimum cr=default)"; Q1DELAY
8170 IF Q1DELAY=0 THEN Q1DELAY=QDELAY ELSE IF Q1DELAY<10 THEN Q1DELAY=10
8175 LOCATE 13,1:PRINT SPACE$(78);:GOTO 8070
8180 LOCATE 2,1:FOR I=1 TO 4:PRINT SPACE$(40):NEXT:LOCATE 1,1:RETURN
8915 PRINT:PRINT:PRINT:PRINT STRING$(32,32);"Have a good day!":PRINT:PRINT:PRINT"(returning to DOS)":PLAY "MBL32N36N32L16N36":END
8920 '
9002 IF ERL=3645 AND ERR=31 THEN PRINT "DISK *NOT* READY!":RESUME 3650
9003 IF ERL=3645 THEN RESUME 3646
9005 IF ERL=170 THEN CLOSE #1:OPEN "LDAPPEND.DAT" FOR OUTPUT AS #1:PRINT #1," ":PRINT #1," ":CLOSE #1:RESUME 170
9015 IF ERL=225 THEN RESUME 245
9035 IF ERL=5280 THEN BEEP:GOSUB 5295:PRINT TAB(31);"*** Invalid communication parameter. Try again.";:EXIT=0:RESUME 5215
9050 IF ERR=24 THEN MSG$="TIMEOUT":GOSUB 8925:IF PR THEN PR=0:MSG$="PRINTOUT OFF":GOSUB 8925:PR=O:CLOSE #3:RESUME 820 ELSE MSG$="CHECK MODEM":GOSUB 8925:RESUME 515
9060 IF ERR=69 THEN PRINT #1,XF$;:PSE=-1:MSG$="OVERFLOW":GOSUB 8925:IF NOT PR THEN RESUME 515 ELSE MSG$="PRINTOUT OFF":PR=0:CLOSE #3:RESUME 515
9065 IF ERR=15 AND ERL=660 THEN MSG$="OVERFLOW--PRINTOUT OFF":GOSUB 8925:PR=0:CLOSE #3:RESUME 515
9100 IF ERR=67 OR ERR=70 OR ERR=71 THEN BEEP:PRINT"*** Can't read/write file in the default drive.":PRINT"Correct and hit any key to resume..":Q$=INPUT$(1):IF ERL<400 THEN RESUME 215 ELSE CLS:RESUME 405
9120 IF ERR=53 AND ERL=11137 THEN BEEP:PRINT "===File NOT FOUND===": RESUME 11130
9125 IF ERR=53 AND ERL=11167 THEN BEEP:PRINT "===File NOT FOUND===": RESUME 11160
9130 IF ERL=810 THEN MSG$="Please check your printer, then press any key. ":GOSUB 2600:TEMP$=INPUT$(1):GOSUB 2825:RESUME 810
9200 '************* MUSIC ERRORS *************05-04-84
9210 IF ERR=5 AND ERL=12420 THEN GOTO 9212 ELSE 9220
9212 GOSUB 4970:Z$="":C$="":RESUME 637
9220 IF ERR=15 AND ERL=645 THEN 9222 ELSE 9290
9222 GOSUB 4970:Z$="":C$="":RESUME 637
9232 GOSUB 4970:Z$="":C$="":A$="":GOTO 637
9240 '
9242 GOSUB 4970:Z$="":C$="":A$=RRL$:GOTO 637
9290 '
9900 IF ERR=5 THEN RESUME 615
9999 DATA "Compatibility changes by: Dorn W. Stickle, 6/84. Higher level then 840517"
10000 IF SP THEN SP=0:TMP$="":LOCATE ROW,COL,1:PRINT:PRINT ELSE 10010
65000 PRINT "This Program (I think that it is becoming an institution), was orignally written by Andrew Fleugelmen. I think that I was the first to modify it
65020 PRINT "with my 450 baud merge. I thought that the program was great, but then came along the fellows with the real brains and have turned this program
65030 PRINT "into something that is FANTASTIC. It is to these people that we all owe our thanks to.":PRINT
65050 PRINT " John Chapman Alt-G Get New Directory Alt-I Load Keys 1-0 from file Alt-U Save Keys 1-0 to file
65060 PRINT " Jack Wright Alt-V Original Show Free Space Leroy Casterline PCFixLC1 & 2 appends account numbers to phone numbers for Sprint & MCI
65070 PRINT " Kent Galbraith Alt-A 3101 Emulation":PRINT
65080 PRINT "I modified many of these, but the original authors are the ones that deserve the credit for their work. I made the jigsaw puzzle fit together and debugged many of the merges as well as making the Free space show on View, Transmit, or
65090 PRINT "Receive a file.":FOR I=1 TO 15500:NEXT I:CLS
65100 LOCATE 3,1:PRINT "Andrew Fluegelman has developed one of the best communications programs that is available for the PC, we need to continue to support the concept that he has started with the FREEWARE CONCEPT"
65110 PRINT
65130 COLOR 1,0:PRINT "We can continue to make it and keep it the BEST communications program there is.":COLOR 0,1
65140 PRINT :PRINT :PRINT STRING$(32,32);"Have a good day!":PRINT :PRINT STRING$(40,32);"Dorn W. Stickle............"